package cn.hsa.fqz.task.service;

import cn.hsa.fqz.common.enums.FileType;
import cn.hsa.fqz.task.entity.TSysFileAccessoryDO;
import cn.hsa.fqz.task.entity.TSysFileDO;
import cn.hsa.fqz.task.service.dto.LoginUserDTO;
import cn.hsa.hsaf.core.fsstore.FSEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.io.FileNotFoundException;
import java.util.List;

/**
 *
 */
public interface TSysFileAccessoryService extends IService<TSysFileAccessoryDO> {

    /**
     * 新增文件
     * @param accessoryId
     * @param type
     * @param fileNo
     * @return
     */
    Boolean add(String accessoryId, Integer type,String fileNo);

    /**
     * 上传文件逻辑
     * @param accessoryId
     * @param file
     * @return
     */
    String upload(String accessoryId, FileType fileType, LoginUserDTO dto, MultipartFile file);

    /**
     * 上传文件(http文件上传)
     * @param directory
     * @param file
     * @return
     */
    String upload(String directory,String subDirectory,FileType fileType, LoginUserDTO dto, MultipartFile file) throws FileNotFoundException, Exception;

    /**
     * 上传文件到FTP逻辑
     * @param directory
     * @param file
     * @return
     */
    String uploadFtp(String directory,String subDirectory,FileType fileType, LoginUserDTO dto, MultipartFile file) throws FileNotFoundException, Exception;
    /**
     * 删除文件
     * @param accessoryId
     * @param fileType
     * @return
     */
    public Boolean delete(String accessoryId,FileType fileType,String fileNo);

    /**
     * 获取
     * @param accessoryId
     * @param fileType
     * @return
     */
    public FSEntity get(String accessoryId, FileType fileType, String fileNo);

    /**
     * 文件列表
     * @param accessoryId
     * @param fileType
     * @return
     */
    public List<TSysFileDO> list(String accessoryId, FileType fileType);


}
